var $onlineCourseTable = $('#onlineCourse');//线上课程
var $offlineCourseTable = $('#offlineCourse');//线下课程
var $valueAddedServicesTable = $('#valueAddedServices');//增值服务
var checkType = 0;

//会员id
var memberProductId = $('#productBs').text()

$(function(){
    cardData();//卡片详情
    onlineCourseInit();//线上课程
    offlineCourseTableInit();//线下课程
    valueAddedServicesTableInit();//增值服务
})

//防止表头与表格不对齐
$(window).resize(function () {
    $onlineCourseTable.bootstrapTable('resetView');
    $offlineCourseTable.bootstrapTable('resetView');
    $valueAddedServicesTable.bootstrapTable('resetView');
});

//获取卡详情
function cardData(){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/customerProduct/detail/info',
        dataType: "json",
        data:{
            memberProductId : memberProductId
        },
        success: (function (result) {
            if (result.code == "000000") {
                $('#cardName').text(result.data[0].memberCardName)
                $('#cardPrice').text(result.data[0].sellingCardPrice)
                $('.cardImg').attr('src',result.data[0].memberCardImg)
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

//线上课程表格初始化
function onlineCourseInit(){
    $onlineCourseTable.bootstrapTable('destroy');
    $onlineCourseTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerProduct/detail/info',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: false,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        // sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        // pageSize: 10,//每页的记录行数
        // pageNumber: 1,//初始化加载第1页，默认第1页
        // pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        detailView: true,                                       // 父子表
        detailFormatter: detailFormatter,                       // 定义详情显示函数
        detailViewIcon: false,                                  // 隐藏图标列
        detailViewByClick: true,                                // 隐藏图标列
        queryParams: {
            memberProductId : memberProductId
        },//查询参数
        columns: [
            {title: '主键', field: 'formId', visible: false},
            {title: '联系人id', field: 'contactPersonId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '课程类型', field: 'courseName',  align: 'center', valign: 'middle'},
            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var data = [];
                if(result.data[0].courseSub != null){
                    $.each(result.data[0].courseSub,function(index){
                        if(result.data[0].courseSub[index].serviceType == '1'){
                            return data.push(result.data[0].courseSub[index])
                        }
                    })
                }
                var obj = {
                    "rows": data,
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}


//线下课程表格初始化
function offlineCourseTableInit(){
    $offlineCourseTable.bootstrapTable('destroy');
    $offlineCourseTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerProduct/detail/info',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: false,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        // sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        // pageSize: 10,//每页的记录行数
        // pageNumber: 1,//初始化加载第1页，默认第1页
        // pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        detailView: true,                                       // 父子表
        detailFormatter: detailFormatter,                       // 定义详情显示函数
        detailViewIcon: false,                                  // 隐藏图标列
        detailViewByClick: true,                                // 隐藏图标列
        queryParams: {
            memberProductId :memberProductId
        },//查询参数
        columns: [
            {title: '主键', field: 'formId', visible: false},
            {title: '联系人id', field: 'contactPersonId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '课程类型', field: 'courseName',  align: 'center', valign: 'middle'},
            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var data = [];
                if(result.data[0].courseSub != null){
                    $.each(result.data[0].courseSub,function(index){
                        if(result.data[0].courseSub[index].serviceType == '2'){
                            return data.push(result.data[0].courseSub[index])
                        }
                    })
                }
                var obj = {
                    "rows": data,
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}

//增值服务
function valueAddedServicesTableInit(){
    $valueAddedServicesTable.bootstrapTable('destroy');
    $valueAddedServicesTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerProduct/detail/info',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: false,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        // sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        // pageSize: 10,//每页的记录行数
        // pageNumber: 1,//初始化加载第1页，默认第1页
        // pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        // fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        detailView: true,                                       // 父子表
        detailFormatter: detailFormatter,                       // 定义详情显示函数
        detailViewIcon: false,                                  // 隐藏图标列
        detailViewByClick: true,                                // 隐藏图标列
        queryParams: {
            memberProductId : memberProductId
        },//查询参数
        columns: [
            {title: '主键', field: 'formId', visible: false},
            {title: '联系人id', field: 'contactPersonId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '课程类型', field: 'courseName',  align: 'center', valign: 'middle'},
            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var data = [];
                if(result.data[0].courseSub != null){
                    $.each(result.data[0].courseSub,function(index){
                        if(result.data[0].courseSub[index].serviceType == '3'){
                            return data.push(result.data[0].courseSub[index])
                        }
                    })
                }
                var obj = {
                    "rows": data,
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}




/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 功能：注册加载子表的事件
 * 参数：index:父表当前行的行索引  row:父表当前行的Json数据对象   $detail:当前行下面创建的新行里面的td对象
 * 说明：第三个参数尤其重要，因为生成的子表的table在装载在$detail对象里面的。bootstrap table为我们生成了$detail这个对象，然后我们只需要往它里面填充我们想要的table即可。
 * */
function detailFormatter(index, row, $detail) {
    initSubTable(index, row, $detail);
}


//初始化子表格(无线循环)
initSubTable = function (index, row, $detail) {
    var id = row.relationId;
    console.log(id)
    var cur_table = $detail.html('<table id="subformTable"><caption>列表</caption></table>').find('table');
    $(cur_table).bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerMemberProductCourse/selectMemberProductCourseByRelationId',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        // pagination: true,//是否显示分页
        // showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        // sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'competitorId',
        idField: 'competitorId',
        // pageSize: 5,//每页的记录行数
        // pageNumber: 1,//初始化加载第1页，默认第1页
        // pageList: "[5]",//可供选择的每页的行数
        queryParams:{
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            memberProductRelationId:id
        },
        columns: [
            {title: '主键', field: 'memberProductCourseId', visible: false},
            {title: '非会员id', field: 'customerProductId', visible: false},
            {title: '非会员名称', field: 'customerProductName', align: 'left', width: '60', valign: 'middle'},
            {title: '服务分类',field: 'serviceClassification',align: 'left', valign: 'middle'},
            {title: '产品原价', field: 'productOriginalPrice',  align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价',field: 'productMemberPrice',align: 'left', valign: 'middle'},
            {title: '课程次数', field: 'courseCount',  align: 'left', valign: 'middle'},
            {title: '兑换方式', field: 'exchangeMethodValue', align: 'left', valign: 'middle'},
            {title: '创建时间',field: 'createTm',align: 'left', valign: 'middle'},
            // {title: '操作',field:'operate',align:'right',formatter: operatingForm},
        ],
        responseHandler: function (result) {
            console.log(result)
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    // "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
        //无线循环取子表，直到子表里面没有记录
        onExpandRow: function (index, row, $Subdetail) {
            initSubTable(index, row, $Subdetail);
        }
    });
};



/**
 * --二维码有效期
 */
function checkSel(time){
    if(time == '0'){
        checkType = 0
    }else if(time == '3'){
        checkType = $('#validPeriod').val()
    }
}

/**
 * --生成二维码
 */
function generateCode(){
    $.ajax({
        type: 'post',
        dataType: "json",
        url: '/customerProduct/detail/createDRcode',
        contentType:'application/json;charset=UTF-8',
        data:JSON.stringify({
            memberProductId:memberProductId,
            tokenTime:checkType
        }),
        success: (function (result) {
            if (result.code == "000000") {
                $('#code').attr('src',result.data.base64)
                $('#codeUrl').text(result.data.link)
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

//复制内容到粘贴板
function copyToClipboard(elemId) {
    var elem = document.getElementById(elemId);
    var targetId = "_hiddenCopyText_";
    var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
    var origSelectionStart, origSelectionEnd;
    if (isInput) {
        // 复制选择内容
        target = elem;
        origSelectionStart = elem.selectionStart;
        origSelectionEnd = elem.selectionEnd;
    } else {
        // 必须有一个临时的元素存储复制的内容
        target = document.getElementById(targetId);
        if (!target) {
            var target = document.createElement("textarea");
            target.style.position = "absolute";
            target.style.left = "-9999px";
            target.style.top = "0";
            target.id = targetId;
            document.body.appendChild(target);
        }
        target.textContent = elem.textContent;
    }
    // 选择内容
    var currentFocus = document.activeElement;
    target.focus();
    target.setSelectionRange(0, target.value.length);
    // 复制内容
    var succeed;
    try {
        succeed = document.execCommand("copy");
    } catch (e) {
        succeed = false;
    }
    // 恢复焦点
    if (currentFocus && typeof currentFocus.focus === "function") {
        currentFocus.focus();
    }
    if (isInput) {
        // 恢复之前的选择
        elem.setSelectionRange(origSelectionStart, origSelectionEnd);
    } else {
        // 清除临时内容
        target.textContent = "";
    }
    alert("复制成功");
    return succeed;
}